package top.aicey.ai.sparring.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;

import top.aicey.ai.sparring.common.holder.SparringContext;
import top.aicey.ai.sparring.dto.llm.EvaluateScoreInfo;
import top.aicey.ai.sparring.dto.res.EvaluationUserSceneHistoryResponse;
import top.aicey.ai.sparring.entity.Scene;
import top.aicey.ai.sparring.entity.SceneInstanceEvaluation;

/**
 * <p>
 * 用户评价内容 服务类
 * </p>
 *
 * @author 白杨
 * @since 2025-01-14
 */
public interface ISceneInstanceEvaluationService extends IService<SceneInstanceEvaluation> {

    SceneInstanceEvaluation getByInstanceId(String instanceId);

    boolean initBySparringContext(SparringContext context);

    void updateEvaluateScoreInfoToComplete(String instanceId, EvaluateScoreInfo evaluateScoreInfo);

    PageInfo<SceneInstanceEvaluation> pageByParams(Integer pageNumber, Integer pageSize, String moduleId, Long sceneId, Long userId);

    void updateEvaluateScoreInfoToFail(String instanceId, Scene scene);

    boolean completeByInstanceId(String moduleId, String instanceId);

    List<EvaluationUserSceneHistoryResponse> sceneHistory(Long sceneId, String userId, Integer limit);

}
